package com.Web.cookie;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;

@WebServlet(name = "CookieServletdemo1", value = "/CookieServletdemo1")
public class CookieServletdemo1 extends HttpServlet {
//    会话技术  ：会话是在一次会话中包含多次请求和响应
//    一次会哈：浏览器第一次给服务器资源发送请求，会话建立，直到一方断开为止
//    由于Http是一个无状态协议，同一个会话的连续两个请求相互独立，彼此并不了解，不能共享数据
//    会话的作用是用于存储浏览器与服务器在请求和响应过程中产生的数据
//    客户端会话技术：Cookie      服务端会话技术：Session

    //    cookie:在一次会话的多次请求之间共享数据,将数据保存到客户端(浏览器)
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        /*
        1.创建cookie对象
        new Cookie(String name,String value)
        2.发送Cookie对象
        response.addCookie(Cookie cookie)
        3.获取Cookie
        Cookie[] request.getCooies()
        4.遍历数组，利用for循环，得到每一个Cookie
         */

        this.doPost(request, response);
    }
//   在CookieServletdemo1中设置Cookie对象
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//             1.创建cookie对象
        Cookie cookie1=new Cookie("name","jack");
        Cookie cookie2=new Cookie("name","jackson");
//            2.通过response，响应(返回)cookies--->发送Cookie
        response.addCookie(cookie1);
        response.addCookie(cookie2);
//        运行第二部可以通过浏览器查看：F12或者右键选择网络-->选择第一个Get-->选择消息头-->向下拉可以看到Set-Cookie：name=jack

/*       在 CookieServletdemo2中获取Cookie对象
//        3.获取Cookie
        Cookie[]  cookies= request.getCookies();
        if (cookies != null) {//cookies.nn可以快速生成判断不等式
            for (Cookie cookie1 : cookies) {
                System.out.println(cookie1.getName()+":"+cookie1.getValue());//name:jack
            }
        }*/
    }
}
